package io.summer.gadget;

import io.summer.redis.tool.RedisTool;
import io.summer.redis.tool.RedissonTool;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 可能使用RedisUtil或者RedissionUtil的包装
 *
 * @author Moonlight
 */
@Component
public class RedisFacade {
  private static RedisTool redisTool;
  private static RedissonTool redissonTool;

  public RedisFacade(RedisTool redisTool, RedissonTool redissonTool) {
    RedisFacade.redissonTool = redissonTool;
    RedisFacade.redisTool = redisTool;
  }

  public static RedisTool redisTool() {
    return redisTool;
  }

  public static RedissonTool redissonTool() {
    return redissonTool;
  }

  public static List<String> hashFields(String key) {
    return redisTool.hash().keys(key).stream()
      .map(Object::toString)
      .collect(Collectors.toList());
  }

  public static Boolean del(String key) {
    return redissonTool.client().getBucket(key).delete();
  }
}
